home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
programs
/
mbbs12d.zip
/
MACROBBS.MAC
< prev
next >
Wrap
Text File
|
1992-06-23
|
49KB
|
1,656 lines
MacroBBS v1.2d
by Jeff Oberlee (C)opyright 1992
{:ALR} {GOTO WF3} {:ALU} {GOTO BBS}
{:setup}
{CLEA}
{STAT n} {LIGH y} {LOCA n} {SPOC y} {HFLO n} {CURS n}
{SETE time_out}
{DISP 1,1,0F,Setup}
{SETV s}
* CONFIGURATION *
{IFEX %_hom%MACROBBS.CFG,,err1}
{DISP 2,1,0E,Reading MacroBBS configuration...}
{ROPE %_hom%MACROBBS.CFG,err1} {READ bbs} {RCLO}
{COMP bbs,BBS's name here} {IFCO err1}
{ROPE %_hom%MACROBBS.CFG,err1}
{READ bbs}
{READ sysop}
{READ syspass}
{READ datadir}
{IFEX %datadir%*.*,,err}
{READ msgsdir}
{IFEX %msgsdir%*.*,,err}
{READ max}
{READ userdir}
{IFEX %userdir%*.*,,err}
{READ filedir}
{IFEX %filedir%*.*,,err}
{READ dszdir}
{READ mspeed}
{READ initstr}
{READ bw}
{READ asan}
{READ cb}
{READ dal}
{READ sal}
{READ ring}
{READ connect}
{READ tlc}
{READ lock}
{RCLO}
{PARM %mspeed}
{DISP 3,1,0E,Initializing modem...} {DISP 4,1,,}
{SEND %initstr^J^M}
{RETURN}
{:cd}
{IFCA cd1}
{COMP on,1} {IFCO time_out}
{:cd1} {COMP on,1} {IFCO ,cd2}
{COMP _ela,%tlc} {IFCO-GE gby2}
{:cd2} {RETURN}
{:cls}
{CLEA}
{COMP on,} {IFCO CLS3}
{COMP mnu,A} {IFCO CLS1}
{SEND ^[[2J}
{GOTO CLS2}
{:CLS1} {SEND ^L}
{:CLS2} {DISP 1,1,4F,│ }
{DISP 1,3,4E,%login_name #%userno}
{DISP 1,38,47,AL=%al}
{DISP 1,48,47,%mspeed}
{DISP 1,57,47,%_ela mins}
{DISP 1,70,4F,%an9%%chat}
{DISP 2,1,4F,└──────────────────────────────────────────────────────────────────────────────}
{DISP 3,1,07,}
{:CLS3} {RETURN}
{:press_any_key}
{COMP mnu,a} {IFCO PAK1}
{SEND %an3%%an9^[[24;1h^[[24;1f[Press Any Key]%an0}
{GOTO PAK2}
{:PAK1} {SEND ^J^M^J[Press Any Key]}
{:PAK2} {SETG 240,time_out}
{GETS-H temp,1,PAK}
{:PAK} {SEND ^M ^M}
{SETV temp}
{RETURN}
{:ascii_ul}
{PARM ,,,,1}
{ASCI-S0 %dump_file,}
{PARM ,,,,0}
{RETURN}
{:dsp_file}
{IFEX %dump_file,,DF5}
{SETV count,0} {SETV open,y}
{SETE time_out}
{ROPE %dump_file,DF3}
{COMP e,1} {IFCO ,DF}
{INCR count,2}
{READ dline}
{READ dline} {SEND %an7%To: %an3%%dline^J^M} {INCR count}
{READ dline} {SEND %an7%From: %an1%%dline^J^M} {INCR count}
{READ dline} {SEND %an7%Subj: %an4%%dline^J^M} {INCR count}
{READ dline} {SEND %an7%Date: %an0%%dline^J^M} {INCR count}
{:DF} {PUSH}
{SETE-P0 esc_menu}
{:DF1} {READ dline}
{COMP e,1} {IFCO ,DF8}
{CALL list_quote}
{SEND ^M%dline%%an0^J^M}
{GOTO DF10}
{:DF8} {SEND ^M%dline^J^M}
{:DF10} {INCR count}
{COMP count,22} {IFCO DF4}
{GOTO DF1}
{:DF2} {RCLO}
{:DF3} {SETV dline} {SETV ch} {SETV count}
{SETV open}
{POPS}
{RETURN}
{:DF4} {SETV count,0}
{SEND More? (Y,n) : }
{SETG 120,DF1}
{:DF6} {CALL cd}
{GETS-H ch,1,DF7}
{COMP ch,y} {IFCO DF7}
{COMP ch,n} {IFCO DF7}
{SEND ^H} {GOTO DF6}
{:DF7} {SEND ^M ^M}
{COMP ch,n} {IFCO DF2,DF1}
{:DF5} {SEND ^J^M^G%an1%Error: %an7%File not found: %dump_file}
{CALL press_any_key}
{RETURN}
{:list_quote}
{COMP dline,&▀▀▀▀▀▀ Quote ▀▀▀▀▀▀} {IFCO ,LQ1}
{SETV dline,%an4▀▀▀▀▀▀ %an7%Quote %an4▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀%an7}
{GOTO LQ2}
{:LQ1} {COMP dline,&▄▄▄▄▄▄ UnQuote ▄▄▄▄▄▄} {IFCO ,LQ2}
{SETV dline,%an4▄▄▄▄▄▄ %an7%UnQuote %an4▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄%an0}
{:LQ2} {RETURN}
{:screen_full}
{SEND %an4%More? %an7(Y,n) %an0: }
{CALL cd}
{SETG 120,SF3}
{:SF1} {GETS-H ch,1,SF2}
{COMP ch,y} {IFCO SF4}
{COMP ch,n} {IFCO SF4}
{SEND ^H} {GOTO SF1}
{:SF2} {SETV ch,y} {GOTO SF4}
{:SF3} {SETV ch,n}
{:SF4} {SEND ^M ^M}
{RETURN}
{:expert_tog}
{COMP expert,ON}
{IFCO ET1}
{SETV expert,ON}
{GOTO ET2}
{:ET1} {SETV expert,OFF}
{:ET2} {RETURN}
{:esc_menu}
{IFCA ,ESM} {SEND ^J^M%an7%%an9%Time comes to a grinding halt! %an0}
{:ESM} {SETE-P0 ESM2} {SETV ch}
{PARM ,,,,0}
{INPU ch, PRESS: [ENTER] to CHAT, [U]seredit, [D]OS, [H]angup}
{COMP ch,h} {IFCO ESM4}
{COMP ch,d} {IFCO ESM5}
{COMP on,} {IFCO ESM}
{COMP ch,u} {IFCO ESM3}
{COMP ch,} {IFCO ,ESM}
{:ESM1} {COMP cf,} {IFCO CT8,ESM}
{:ESM2} {SETE-P0 esc_menu}
{IFCA ,ESM6} {SEND %an3%Then suddenly...} {PAUS 1}
{:ESM6} {RETURN}
{:ESM5} {SHEL} {GOTO ESM}
{:ESM3} {COMP open,y} {IFCO ESM}
{:ESM8} {COMP login_name,} {IFCO ESM}
{SETV lname,%login_name} {INPU lname,EDIT: Handle (3-30 characters)}
{COMP lname,1} {IFCO-GE ESM8}
{LENG %lname} {COMP _len,3} {IFCO-L ESM8}
{LENG %lname} {COMP _len,30} {IFCO-G ESM8}
{:ESM9} {SETV temp,%protocol} {INPU temp,EDIT: Protocol (1 letter)}
{LENG %temp} {COMP _len,1} {IFCO ,ESM9}
{:ESM0} {SETV ch,%al} {INPU ch,EDIT: Access Level (0-999)}
{COMP ch,999} {IFCO-G ESM0}
{SETV al,%ch}
{SETV protocol,%temp}
{SETV row,%_row} {SETV col,%_col} {DISP 2,2,0F,%an9 * Saving * }
{COMP lname,%login_name} {IFCO ESM7}
{SETV login_name,%lname}
{SETE time_out}
{CALL update_clist}
{:ESM7} {CALL write_user}
{DISP 2,2,07, }
{DISP %row,%col,,}
{SETV row} {SETV col} {SETV lname}
{GOTO ESM}
{:ESM4} {SETV s,2} {GOTO time_out}
{:get_name}
{PUSH}
{:GN1} {CALL cd}
{SEND ^J^M%an7%Enter your name or handle: %an4}
{SETG 120,time_out}
{:GN0} {GETS lname,30,GN0}
{SEND ^J^M%an3%Checking...}
{LENG %lname} {COMP %_len,3} {IFCO-L GN2}
{COMP lname,new} {IFCO GN6}
{COMP lname,1} {IFCO-GE GN6}
{IFEX %datadir%CALLERS.LST,,GN5}
{ROPE %datadir%CALLERS.LST,GN5}
{:GN4} {READ ch} {READ dline} {READ cline}
{COMP lname,%dline} {IFCO GN3,GN4}
{:GN5} {SEND %an7 OK}
{SETV dline} {SETV cline}
{POPS}
{RETURN}
{:GN2} {SEND ^G%an1%Invalid handle. %an0%Must be at least 3 characters long.}
{GOTO GN1}
{:GN3} {SEND ^G%an1%Sorry! That handle is being used already.^J^M}
{:GN6} {SEND %an1%Please choose something else...}
{GOTO GN1}
{:get_pass}
{SETG 60,time_out}
{CALL cd}
{GETS-P pass,15}
{RETURN}
{:time_out}
{POPS-C}
{CAPT n}
{STAT n}
{COMP open,y} {IFCO ,TKO1} {RCLO}
{:TKO1} {COMP open,yy} {IFCO ,TKO2} {SETV f,1} {CALL BB13}
{:TKO2} {COMP on,1} {IFCO ,bbs}
{COMP _ela,%tlc} {IFCO-GE gby2}
{COMP userno,1} {IFCO-GE ,gbye}
{IFCA ,GB2}
{COMP s,2} {IFCO gbye,gby}
{:err} {RCLO}
{:err1} {CLEA} {SEND ^G^G}
{SPOC n} {LOCA n}
{DISP 2,2,0C,MacroBBS must be configured for your system before it will work properly.}
{DISP 3,2,07,You should only have to do this once to initialize the system. But you may}
{DISP 4,2,07,re-configure MacroBBS whenever you want to make changes.}
{DISP 6,2,0F,PLEASE be sure to answer ALL questions accurately and make SURE}
{DISP 7,2,0F,all disk directories that you specify do indeed exist on your disk.}
{PAUS 3}
{:ER0} {DISP 10,2,07,Press the SPACEBAR to run the CONFIG module.... ^H}
{:ER!} {GETS-H ch,1,ER1}
{COMP ch, } {IFCO ER2,ER0}
{:ER2} {MACL MACROCFG.MAC,start}
{:read_user}
{ROPE %userdir%%userno.MHS,RU1}
{READ login_name}
{READ password}
{READ al}
{READ protocol}
{READ expert}
{READ a}
{READ fa}
{RCLO}
{:RU1} {RETURN}
{:write_user}
{WOPE %userdir%%userno.MHS}
{WRIT %login_name}
{WRIT %password}
{WRIT %al}
{WRIT %protocol}
{WRIT %expert}
{WRIT %a}
{WRIT %fa}
{WCLO}
{RETURN}
{:read_data}
{ROPE %datadir%CALLER.DAT,RD1}
{READ %callno}
{READ %tdcalls}
{READ pub}
{READ pvt}
{READ ttu}
{READ tf}
{READ ldate}
{READ stime}
{READ ftime}
{READ l_caller}
{READ luserno}
{READ uhigh}
{READ mhigh}
{READ fhigh}
{RCLO}
{:RD1} {RETURN}
{:write_data}
{WOPE %datadir%CALLER.DAT}
{WRIT %callno}
{WRIT %tdcalls}
{WRIT %pub}
{WRIT %pvt}
{WRIT %ttu}
{WRIT %tf}
{WRIT %ldate}
{WRIT %stime}
{WRIT %ftime}
{WRIT %login_name}
{WRIT %userno}
{WRIT %uhigh}
{WRIT %mhigh}
{WRIT %fhigh}
{WCLO}
{RETURN}
{:new_user}
{CALL cls} {SETV new,1}
{:NU4} {SETV dump_file,%datadir%NEWUSER%mnu.mnu}
{IFEX %dump_file,,NU0}
{CALL ascii_ul}
{:NU0} {CALL get_name} {SETV login_name,%lname} {SETV lname}
{:NU10} {PUSH}
{SEND ^J^M%an4%Choose a password. You will need it each time you log-on.^J^M}
{:NU1} {SEND %an0%Password: }
{:NU7} {CALL cd}
{GETS password,15,NU7}
{LENG %password} {COMP %_len,4} {IFCO-GE NU3}
{SEND ^J^M%an1%Invalid password. %an0%Must be at least 4 characters long.^J^M}
{GOTO NU1}
{:NU3} {MACL MACRODAT.MAC,get_protocol}
{:NU11} {SETV count,0} {SETV al,0}
{:NU2} {INCR count} {IFEX %userdir%%count.MHS,NU2}
{SETV userno,%count}
{SEND ^J^M^J%an3%Your Caller ID# is%an0 %userno}
{COMP userno,%uhigh} {IFCO-LE NU9}
{SETV uhigh,%userno}
{CALL add_index}
{:NU9} {SEND ^J^M%an1%Saving your information...}
{WOPE-A %datadir%LOG-1.LOG} {WRIT ▒▒ NEW CALLER ▒▒ %login_name #%userno} {WCLO}
{:NU6} {CALL write_user}
{WOPE-A %datadir%CALLERS.LST}
{WRIT %userno}
{WRIT %login_name}
{WRIT %password}
{WCLO}
{CALL write_data}
{SEND ^J^M%an0%Please re-enter your name and password for verification.^J^M}
{:NU8} {GOTO login_user}
{:add_index}
{SETV mic,0}
{:AI1} {INCR mic}
{COMP mic,%mhigh} {IFCO-G AI2}
{WOPE-A %msgsdir%A%mic.IND} {WRIT 1} {WCLO}
{GOTO AI1}
{:AI2} {SETV mic}
{RETURN}
{:login_user}
{PUSH}
{SETV success}
{SETV tries,0}
{:LU0} {INCR tries}
{COMP tries,3} {IFCO-G LU4}
{SEND ^J^M%an2 Login: %an7}
{SETG 60,gbye}
{CALL cd}
{GETS to,30,LU0}
{COMP to,new} {IFCO ,LU8}
{COMP new,1} {IFCO LU0,new_user}
{:LU8} {SEND ^J^M^J%an3%%an9%Verifying}
{CALL match_name_userno}
{SEND ^M}
{COMP t,1} {IFCO LU11}
{:LU6} {SEND %an0 Type "%an7%%an9%NEW%an0" if you're 100%% POSITIVE you logged-in correctly.^J^M}
{WOPE-A %datadir%LOG-1.LOG} {WRIT ▒░▒░▒ NAME NOT FOUND: "%to" ▒░▒░▒} {WCLO}
{GOTO LU0}
{:LU11} {POPS}
{:LU7} {PUSH}
{SETV ptries,0} {SETV t}
{:LU3} {INCR ptries} {COMP ptries,3} {IFCO-G LU4}
{SEND ^M%an2%Password: %an7}
{CALL get_pass}
{COMP dline,%pass} {IFCO LU5}
{SEND ^J^M%an1%Incorrect password.^J^M^J}
{WOPE-A %datadir%LOG-1.LOG} {WRIT ▒░▒░▒ ENTERED INCORRECT PASSWORD: "%password" ▒░▒░▒} {WCLO}
{GOTO LU3}
{:LU5} {SETV userno,%tono}
{CALL read_user}
{SETV success,true}
{WOPE-A %datadir%LOG-1.LOG} {WRIT %login_name #%userno} {WCLO}
{:LU4} {SETV tries} {SETV ptries} {SETV lname} {SETV pass}
{SETV dline} {SETV to} {SETV tono}
{POPS}
{GOTO BB}
{:find_line}
{SEND %an7%Searching...}
{ROPE %datadir%RTEMP.000,FL7}
{READ edline} {READ edline} {READ edline}
{READ edline} {READ edline} {READ edline}
{SETV ccount,0}
{:FL6} {INCR ccount}
{READ edline}
{COMP ccount,%fline} {IFCO ,FL6}
{RCLO}
{:FL7} {SEND ^M ^M}
{SETV dline,%edline}
{CALL list_quote}
{SETV edline,%dline}
{SETV dline}
{RETURN}
{:line_update}
{SEND %an7%Updating...}
{ROPE %datadir%RTEMP.000,FL3}
{WOPE %datadir%WTEMP.000}
{READ dline} {WRIT %dline} {READ dline} {WRIT %dline}
{READ dline} {WRIT %dline} {READ dline} {WRIT %dline}
{READ dline} {WRIT %dline} {READ dline} {WRIT %dline}
{COMP t,2} {IFCO ,FL}
{COMP ccount,0} {IFCO FL5}
{:FL} {SETV temp,0}
{:FL0} {INCR temp}
{READ dline}
{COMP temp,%ccount} {IFCO FL1}
{WRIT %dline}
{GOTO FL0}
{:FL1} {COMP t,1} {IFCO FL4}
{COMP t,2} {IFCO ,FL5}
{WRIT %dline}
{:FL5} {WRIT %edline}
{:FL2} {INCR ccount}
{:FL4} {READ dline} {WRIT %dline}
{GOTO FL2}
{:FL3} {WCLO}
{EXEC-N COPY %datadir%WTEMP.000 %datadir%RTEMP.000}
{SETV dline}
{SEND ^M ^M}
{RETURN}
{:edit_system}
{SEND ^M%an0%Loading...}
{WCLO}
{EXEC-N COPY %dump_file %datadir%WTEMP.000}
{EXEC-N COPY %datadir%WTEMP.000 %datadir%RTEMP.000}
{SEND ^M ^M}
{:ES0} {SETV t}
{SEND ^J^M%an1%Editor: %an7%A%an0%bort,%an7%C%an0%ont,%an7%D%an0%elete,%an7%E%an0%dit,%an7%I%an0%nsert,%an7%L%an0%ist,%an7%R%an0%eplace,%an7%S%an0%ave: %an3}
{:ES1} {SETG 120,time_out}
{GETS-H ch,1,ES1}
{COMP ch,a} {IFCO abort}
{COMP ch,c} {IFCO continue}
{COMP ch,d} {IFCO delete}
{COMP ch,e} {IFCO edit_line}
{COMP ch,i} {IFCO insert}
{COMP ch,l} {IFCO list}
{COMP ch,r} {IFCO replace}
{COMP ch,s} {IFCO save}
{:ES3} {SEND ^H} {GOTO ES1}
{:abort}
{SEND bort^J^M}
{SETV edline} {SETV fline}
{EXEC-N DEL %datadir%?TEMP.000}
{WOPE %dump_file}
{GOTO BB13}
{:continue}
{COMP lineno,%max} {IFCO-G ES3}
{SEND ontinue^J^M}
{SEND %an7%One moment...}
{EXEC-N COPY %datadir%WTEMP.000 %dump_file}
{SEND ^M%an7%Ok. Carry on... :)%an3^J^M}
{WOPE-A %dump_file}
{GOTO BB27}
{:delete}
{SEND elete^J^M^J}
{:D5} {SEND ^M%an4%Line # to DELETE:%an0 ^H^H^H}
{GETS fline,3,R1}
{COMP fline,1} {IFCO-L D5}
{COMP fline,%lineno} {IFCO-G D5}
{SEND ^J^M}
{CALL find_line}
{SEND ^J^M%an0%%edline^J^M}
{SEND ^J^M%an7%DELETE this line? %an0(%an7%Y%an0,n) :%an7 }
{:D3} {GETS-H ch,1,D4}
{COMP ch,y} {IFCO D4}
{COMP ch,n} {IFCO R1}
{SEND ^H} {GOTO D3}
{:D4} {SEND ^J^M}
{SETV edline}
{SETV t,1} {CALL line_update} {DECR lineno}
{SEND %an0%Line deleted.^J^M}
{:D1} {GOTO ES0}
{:D2} {SEND ^H} {GOTO D3}
{:edit_line}
{SEND dit^J^M^J}
{:EL5} {SEND ^M%an4%Line # to EDIT:%an0 ^H^H^H}
{GETS fline,3,R1}
{COMP fline,1} {IFCO-L EL5}
{COMP fline,%lineno} {IFCO-G EL5}
{SEND ^J^M}
{CALL find_line}
{SEND ^J^M%an5%Line %fline reads:^J^M}
{:EL0} {SEND %an0%%edline^J^M}
{SEND ^J^M%an7%Type in the string to replace or press ENTER to abort.^J^M%an3}
{GETS oldstr,60,EL1}
{INST edline,%oldstr}
{COMP %_pos,0} {IFCO-G EL2}
{SEND ^J^M^J%an1%String not found.^J^M^J}
{GOTO EL0}
{:EL2} {SETV spos,%_pos}
{LENG %oldstr} {SETV olen,%_len}
{SETV mx,0}
{SETV ch,79} {LENG %edline} {DECR ch,%_len}
{INCR mx,%ch} {INCR mx,%olen}
{SEND ^J^M^J%an7%Type replacement string or press ENTER to cut.^J^M%an3}
{GETS newstr,%mx,EL3}
{:EL3} {SEND ^J^M}
{DECR spos}
{SUBS lstr,1,%spos,%edline}
{INCR spos,%olen} {INCR spos}
{SUBS rstr,%spos,100,%edline}
{SETV edline,%lstr%%newstr%%rstr%}
{CALL line_update}
{SETV ccount,%fline}
{GOTO EL0}
{:EL1} {SETV olen} {SETV spos} {SETV lstr} {SETV rstr} {SETV newstr} {SETV mx}
{GOTO ES0}
{:insert}
{COMP lineno,%max} {IFCO-G ES3}
{SEND nsert^J^M^J}
{:I4} {SEND ^M%an4%Line # to insert BEFORE:%an0 ^H^H^H}
{GETS fline,3,R1}
{COMP fline,1} {IFCO-L I4}
{COMP fline,%lineno} {IFCO-G I4}
{SEND ^J^M}
{COMP fline,1} {IFCO I2}
{DECR fline} {CALL find_line} {INCR fline} {GOTO I3}
{:I2} {SETV edline,*** BEGINNING OF MESSAGE ***}
{:I3} {SEND ^J^M%an7%INSERTING between these lines:}
{SEND ^J^M^J%an0%%edline^J^M}
{CALL find_line}
{SEND ^J^M%an0%%edline^J^M}
{SEND ^J^M%an7%Type line to insert or press ENTER to abort.^J^M%an3}
{GETS edline,79,I1}
{SEND ^J^M}
{DECR ccount}
{SETV t,2} {CALL line_update} {INCR lineno}
{SEND %an0%Line inserted.^J^M}
{:I1} {GOTO ES0}
{:list}
{SEND ist^J^M}
{SEND ^J^M%an7%Include line numbers? %an0(y,%an7%N%an0) : }
{:L1} {GETS-H temp,1,L4}
{COMP temp,y} {IFCO L4}
{COMP temp,n} {IFCO L4}
{SEND ^H} {GOTO L1}
{:L4} {ROPE %datadir%RTEMP.000,L10}
{READ dline} {READ dline} {READ dline}
{READ dline} {READ dline} {READ dline}
{SEND ^J^M^J%an3%Your message reads:^J^M^J%an0}
{SETV ccount,0}
{:L5} {SETV count,0}
{:L6} {INCR ccount} {INCR count}
{READ dline} {CALL list_quote} {SEND %dline%%an0}
{COMP temp,y} {IFCO ,L7}
{SEND ^M%an7%%ccount:%an0}
{:L7} {SEND ^J^M}
{COMP count,21} {IFCO ,L6}
{CALL screen_full}
{COMP ch,y} {IFCO L5}
{RCLO}
{:L10} {SETV dline}
{GOTO ES0}
{:replace}
{SEND eplace^J^M^J}
{:R2} {SEND ^M%an4%Line # to REPLACE:%an0 ^H^H^H}
{GETS fline,3,R1}
{COMP fline,1} {IFCO-L R2}
{COMP fline,%lineno} {IFCO-G R2}
{SEND ^J^M}
{CALL find_line}
{SEND ^J^M%an5%Line %fline reads:^J^M}
{SEND %an0%%edline^J^M}
{SEND ^J^M%an7%Type new line or press ENTER to abort.^J^M%an3}
{GETS edline,79,I1}
{SEND ^J^M}
{CALL line_update}
{SEND %an0%Line replaced.}
{:R1} {SEND ^J^M}
{GOTO ES0}
{:save}
{SEND ave^J^M^J%an1%Saving...}
{SETV edline} {SETV fline}
{EXEC-N COPY %datadir%WTEMP.000 %dump_file}
{EXEC-N DEL %datadir%?TEMP.000}
{WOPE-A %dump_file}
{GOTO BB11}
{:quote}
{COMP r,1} {IFCO Q1}
{INST %dump_file,.MSG} {IFCO E4,BB27}
{:Q1} {ROPE %quotemsg,Q7}
{READ dline} {READ dline} {READ dline}
{READ dline} {READ dline} {READ dline}
{SETV qcount,0}
{SEND ^M ^M%an7%%an12 ^M}
{SEND Quoting %to ...^J^M}
{SEND %an7%%an12 SPACEBAR = Quote Line N = Skip Line Q = Quit ^J^M}
{:Q2} {SEND ^M%an0%%an13 ^M}
{READ dline}
{COMP mnu,a} {IFCO Q10}
{SETV an4} {SETV an7}
{:Q10} {CALL list_quote}
{GOTO Q5}
{:Q5} {SEND %an0%%dline}
{SETG 60,time_out,n}
{:Q6} {GETS-H ch,1,Q6}
{COMP ch, } {IFCO Q3}
{COMP ch,n} {IFCO Q2}
{COMP ch,q} {IFCO ,Q6}
{RCLO}
{:Q7} {COMP mnu,a} {IFCO Q11}
{CALL ansi}
{:Q11} {COMP qcount,0} {IFCO Q8}
{WRIT &▄▄▄▄▄▄ UnQuote ▄▄▄▄▄▄}
{WRIT }
{INCR lineno,2}
{:Q8} {SETV qcount}
{SEND ^J^M%an7%Finished quoting. Please continue your message ...^J^M}
{GOTO BB27}
{:Q3} {INCR qcount}
{COMP qcount,1} {IFCO ,Q9}
{WRIT &▀▀▀▀▀▀ Quote ▀▀▀▀▀▀}
{INCR lineno}
{:Q9} {WRIT %dline}
{INCR lineno}
{GOTO Q2}
{:chat}
{SETV temp,0} {SETV ccount,0}
{WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Chat request} {WCLO}
{SEND ^J^M^J%an4%Paging %sysop ...^J^M}
{SPOC n} {SEND %an3%Press %an0[ESC]%an3 then %an0[ENTER]%an3 to chat with%an7 %login_name %an3...^J^M} {SPOC y}
{:CT7} {INCR ccount} {SETV-S ch,an%ccount}
{SEND %ch█}
{SEND ^G} {SEND ^G} {SEND ^G} {PAUS 2}
{COMP ccount,5} {IFCO-G ,CT7}
{:CT6} {SETV chat,CHAT}
{SEND ^M%an0%Sorry, %sysop isn't around right now.^J^M}
{SEND %an0%However, the chat flag has been set.^J^M^J}
{GOTO CT9}
{:CT8} {SETV tl,%_ela}
{SETG 240,time_out}
{WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Started chat} {WCLO}
{COMP cb,y} {IFCO ,CT14}
{CAPT y,%datadir%CHAT.LOG}
{:CT14} {SEND ^J^M^J%an3%You've just entered . . . %an7%The Twilight Zone. %an3%Reality vanishes.^J^M}
{SEND %an2(Type "%an0%bye!%an2" on a blank line to exit when desired.)^J^M}
{SETV cf,1} {SETV co1,%an0} {SETV co2,%an3}
{SETE-P0 esc_menu}
{PUSH}
{:CT2} {COMP cf,1} {IFCO CT3}
{SEND %co2} {SETV cf,1} {GOTO CT4}
{:CT3} {SEND %co1} {SETV cf,2}
{:CT4} {SETV cline}
{:CT5} {SEND ^J}
{:CT13} {SEND ^M%cline}
{GETS-AH cline,78,CT2}
{COMP cline,/c} {IFCO switch_c}
{COMP cline,bye!} {IFCO CT1}
{COMP cline,bye!!} {IFCO time_out}
{COMP cline,/scroll} {IFCO view_scroll}
{COMP cline,NO CARRIER} {IFCO time_out}
{LENG %cline} {COMP %_len,77} {IFCO-LE CT4}
{SETV ccount,80} {SETV dline,0} {SETV cline, %cline}
{:CT11} {DECR ccount} {INCR dline}
{COMP ccount,60} {IFCO-LE CT4}
{SUBS ch,%ccount,1,%cline}
{COMP ch, } {IFCO ,CT11}
{COMP ccount,79} {IFCO CT4}
{INCR ccount}
{SUBS cline,%ccount,%dline,%cline}
{SETV ccount,0}
{:CT12} {INCR ccount} {SEND ^H}
{COMP ccount,%dline} {IFCO ,CT12}
{GOTO CT5}
{:CT1} {CAPT n}
{SETV ch,%_ela} {DECR ch,%tl} {INCR tlc,%ch} {SETV tl}
{SEND ^J^M^J%an3%You've just left . . . %an7%The Twilight Zone. %an3%Reality restored.^J^M^J}
{WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Ended chat} {WCLO}
{SETV cf} {SETV co1} {SETV co2} {SETV chat} {SETV cline}
{POPS}
{:CT9} {SETV ccount}
{SETE-P0 esc_menu}
{CALL press_any_key}
{RETURN}
{:switch_c}
{:SW1} {SEND ^M%an0(0 %an1%1 %an2%2 %an3%3 %an4%4 %an5%5 %an6%6 %an7%7%an0) ^H}
{GETS-H ch,1,SW1}
{COMP ch,0} {IFCO-L SW1}
{COMP ch,7} {IFCO-G SW1}
{SEND ^M ^M}
{COMP cf,1} {IFCO ,SW3}
{SETV-S co2,an%ch} {SEND %co2} {GOTO SW4}
{:SW3} {SETV-S co1,an%ch} {SEND %co1}
{:SW4} {SETV cline}
{GOTO CT13}
{:update_clist}
{ROPE %datadir%CALLERS.LST,UC1}
{WOPE %datadir%TEMP.000}
{:UC2} {READ ch} {READ cline} {READ dline}
{COMP ch,%userno} {IFCO UC3}
{WRIT %ch} {WRIT %cline} {WRIT %dline} {GOTO UC2}
{:UC3} {COMP s,1} {IFCO UC5}
{:UC4} {WRIT %ch}
{WRIT %login_name}
{WRIT %password}
{:UC5} {READ dline} {WRIT %dline} {GOTO UC5}
{:UC1} {WCLO}
{EXEC-N COPY %datadir%TEMP.000 %datadir%CALLERS.LST}
{EXEC-N DEL %datadir%TEMP.000}
{RETURN}
{:main_menu}
{PUSH}
{SETE-P0 esc_menu}
{:MM1} {CALL cd}
{:MM9} {COMP expert,ON} {IFCO MM2}
{:MM15} {CALL cls}
{SEND ^J^M^J^J^J^J}
{SEND ^J^M%an7 Main Menu^J^M}
{SEND ^J^M%an0 [%an3%M%an0] Message Base [%an3%R%an0] Read E-mail [%an3%V%an0] Version/BBS [%an3%T%an0] Time On-line}
{SEND ^J^M%an0 [%an3%F%an0] File Base [%an3%C%an0] Chat [%an3%Y%an0] Your Data [%an3%G%an0] Goodbye}
{COMP al,0} {IFCO MM16}
{SEND ^J^M%an0 [%an3%H%an0] Hall of Fame [%an3%S%an0] Send E-mail [%an3%I%an0] Intromsg [%an3%L%an0] List Members}
{:MM16} {SEND ^J^M^J%an0 [%an3%A%an0] ANSI Toggle [%an3%X%an0] Xpert Toggle}
{:MM16} {SEND ^J^M%an0 [%an3*%an0] Quick log-off (from all menus)}
{COMP al,%dal} {IFCO-L MM2}
{SEND ^J^M^J%an0 [%an3%D%an0] DOS}
{:MM2} {SEND ^J^M^J%an3%Main Menu %an0%%_tim^J^M}
{SETV ch,%tlc} {DECR ch,%_ela}
{SEND %an0%Mins Left: %ch^J^M}
{:MM8} {SEND ^M} {COMP expert,ON} {IFCO ,MM17}
{SEND %an3(%an7?%an3%=menu) }
{:MM17} {SEND %an7%MM Command: ^H}
{SETG 120,time_out}
{:MM3} {CALL cd}
{GETS-H ch,1,MM3}
{COMP ch,*} {IFCO time_out}
{COMP ch,a} {IFCO color_tog}
{COMP ch,c} {IFCO chat}
{COMP ch,f} {IFCO file_tran}
{COMP ch,g} {IFCO MM5}
{COMP ch,m} {IFCO msg_base}
{COMP ch,r} {IFCO email}
{COMP ch,t} {IFCO time_on}
{COMP ch,y} {IFCO user_info}
{COMP ch,x} {IFCO expert_tog}
{COMP ch,v} {IFCO ver}
{COMP ch,?} {IFCO MM15}
{COMP al,0} {IFCO MM8}
{COMP ch,s} {IFCO send_email}
{COMP ch,h} {IFCO hall}
{COMP ch,i} {IFCO intromsg}
{COMP ch,l} {IFCO SP13}
{COMP al,%dal} {IFCO-L MM8}
{COMP ch,d} {IFCO dos,MM8}
{:MM5} {SEND ^J^M^J%an7%Are you sure? %an0(%an7%Y%an0,n) :%an3 }
{SETG 60,MM10}
{:MM13} {GETS-H ch,1,MM10}
{COMP ch,y} {IFCO MM10}
{COMP ch,n} {IFCO MM2}
{SEND ^H} {GOTO MM13}
{:MM10} {SEND ^J^M^J%an3%Drop a note to %sysop? %an0(y,%an7%N%an0) :%an3 }
{SETG 60,gby}
{:MM11} {GETS-H ch,1,gby}
{COMP ch,y} {IFCO MM12}
{COMP ch,n} {IFCO gby}
{SEND ^H} {GOTO MM11}
{:MM12} {SETV f,1} {SETV to,%sysop} {SETV tono,1} {CALL SE4} {GOTO gby}
{:color_tog}
{COMP mnu,a} {IFCO ansi,ascii}
{RETURN}
{:time_on}
{SETV ch,%tlc} {DECR ch,%_ela}
{SEND ^J^M^J%an1%Time on-line : %an7%%_ela %an0%minute(s)}
{SEND ^J^M%an1%Time remaining: %an7%%ch %an0%minute(s)}
{GOTO MM2}
{:ver}
{SEND ^J^M^J%an3%Macro%an7%BBS %an0(tm) %an7%v1.2d %an0- %an7(C)opyright 1992 by Jeff Oberlee%an0 -%an7 All Rights Reserved}
{GOTO MM2}
{:msg_base}
{IFEX %msgsdir%A%a.BAS,MB2}
{IFEX %msgsdir%A*.BAS,,MM8}
{SETV a,0}
{:MB1} {INCR a}
{COMP a,%mhigh} {IFCO-G MM8}
{IFEX %msgsdir%A%a.BAS,,MB1}
{:MB2}
{ROPE %msgsdir%A%a.BAS,MB1} {READ ch} {READ ch} {RCLO}
{COMP ch,%al} {IFCO-G MB1}
{MACL MACROMSG.MAC,start}
{:file_tran}
{IFEX %filedir%F%fa.BAS,FX2}
{IFEX %filedir%F*.BAS,,MM8}
{SETV fa,0}
{:FX1} {INCR fa}
{COMP fa,%fhigh} {IFCO-G MM8}
{IFEX %filedir%F%fa.BAS,,FX1}
{:FX2}
{ROPE %filedir%F%fa.BAS,FX1} {READ ch} {READ ch} {RCLO}
{COMP ch,%al} {IFCO-G FX1}
{MACL MACROFIL.MAC,start}
{:hall}
{MACL MACROREG.MAC,start}
{:email}
{IFEX %msgsdir%E%userno-1.PVT,BB10}
{SEND ^J^M^J%an0 Sorry. Your E-mailbox is empty.^J^M^J}
{GOTO MM8}
{:user_info}
{MACL MACRODAT.MAC,user_info}
{:intromsg}
{MACL MACRODAT.MAC,intro_msg}
{:dos}
{SEND ^J^M^J%an1%DOS password: %an0}
{CALL get_pass}
{COMP pass,%syspass} {SETV pass} {IFCO ,DS4}
{COMP mspeed,local} {IFCO DS2}
{IFEX DOORWAY.EXE,,DS3}
{WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : ▓▓ ENTERED DOS VIA DOORWAY.EXE ▓▓} {WCLO}
{EXEC DOORWAY COM%_port /M:60 /G:ON /A:ON /V:D^U /O:T /S:* /C:DOS}
{:DS1} {RETURN}
{:DS2} {SHELL}
{GOTO MM2}
{:DS3} {SEND ^J^M%an1%DOORWAY.EXE is not installed.}
{:DS4} {GOTO MM2}
{:view_scroll}
{SCROLL}
{COMP on,} {IFCO WF0,CT4}
{:m_init}
{CLEA}
{SPOC y}
{SETV count,0}
{DISP 2,1,0F,Initializing modem...}
{DISP 3,1,0F,}
{PARM %mspeed}
{SEND %initstr^J^M}
{GOTO WFC}
{:m_init_w}
{SPOC y}
{SETV count,0}
{CALL EO2}
{DISP 15,4,0F,%an9%Initializing} {PAUS 1}
{PARM %mspeed}
{SEND %initstr^J^M}
{CALL EO2}
{GOTO WF0}
{:edit_msgbs}
{CALL get_syspass}
{CALL EO2}
{MACL MACROCFG.MAC,EMA}
{:edit_caller}
{CALL get_syspass}
{CALL EO2}
{MACL MACROCFG.MAC,ECI}
{:edit_fareas}
{CALL get_syspass}
{CALL EO2}
{MACL MACROCFG.MAC,EFA}
{:call_log}
{CLEA} {STAT y}
{:CL1} {DISP 3,6,0F, (%an3%T%an7)oday or (%an3%A%an7)ll? ^H}
{SETG 120,WFC}
{GETS-H ch,1,WFC}
{COMP ch,t} {IFCO CL2}
{COMP ch,a} {IFCO ,CL1}
{SETV dump_file,%datadir%CALLERS.ALL} {GOTO CL3}
{:CL2} {SETV dump_file,%datadir%CALLERS.TDY}
{:CL3} {CLEA}
{DISP 1,1,0F,Date Time On Time Off Handle}
{DISP 2,1,07,}
{CALL dsp_file}
{CALL press_any_key}
{GOTO WFC}
{:use_log}
{CLEA} {STAT y}
{:USE1} {DISP 3,6,0F, (%an3%D%an7%)ata or (%an3%C%an7%)hart? ^H}
{SETG 120,WFC}
{GETS-H ch,1,WFC}
{COMP ch,c} {IFCO USE2}
{COMP ch,d} {IFCO ,USE1}
{CLEA}
{DISP 1,1,0F,Date Calls Active Public Private}
{DISP 2,1,07,}
{SETV dump_file,%datadir%STATS.LOG}
{CALL dsp_file}
{:USE3} {CALL press_any_key}
{GOTO WFC}
{:USE2} {ROPE %datadir%CHART.LOG,USE6}
{:USE4} {CLEA}
{SETV count,0}
{DISP 1,1,0F,Date %an0├%an2--1--2--3--4--5--6--7--8--9--%an3%0--1--2--3--4--5--6--7--8--9--%an1%0--1--2--3--4}
{DISP 2,1,0F,}
{:USE5} {READ dline}
{SEND %an0│ %an2░ ░ ░ ░ ░ ░ ░ ░ ░ %an3░ ░ ░ ░ ░ ░ ░ ░ ░ ░ %an1░ ░ ░ ░ ░^M}
{SEND %an0%%dline^J^M}
{INCR count} {COMP count,21} {IFCO-L USE5}
{SEND %an0├%an2--1--2--3--4--5--6--7--8--9--%an3%0--1--2--3--4--5--6--7--8--9--%an1%0--1--2--3--4^J^M}
{CALL screen_full}
{COMP ch,y} {IFCO USE4}
{RCLO}
{:USE6} {SEND %an0├%an2--1--2--3--4--5--6--7--8--9--%an3%0--1--2--3--4--5--6--7--8--9--%an1%0--1--2--3--4}
{GOTO USE3}
{:dos_shell}
{SHELL}
{GOTO WF0}
{:get_syspass}
{COMP on,} {IFCO ,GS1}
{SPOC y} {LOCA n} {SEND ATM0H1^J^M} {SPOC n} {PAUS 4} {LOCA y}
{CALL EO2}
{:GS1} {DISP 15,3,0C, PASSWORD%an0: ^H^H^H^H^H^H}
{SETG 120,GS}
{GETS-P ch,15,GS}
{COMP ch,%syspass} {IFCO ,GS}
{RETURN}
{:GS} {POPS}
{GOTO m_init_w}
{:special}
{CALL get_syspass}
{:SP0} {CLEA} {STAT n} {SPOC n}
{CALL ansi}
{SETV login_name,%sysop}
{DISP 4,28,,%an1 Special Functions Menu}
{DISP 7,15,,%an7%1.%an3 Read SYSOP mail %an7 5.%an3 Edit a letter}
{DISP 8,15,,%an7%2.%an3 Read another's mail %an7 6.%an3 System logs}
{DISP 9,15,,%an7%3.%an3 Send e-mail to ... %an7 7.%an3 List Members}
{DISP 10,15,,%an7%4.%an3 Mail count %an7 8.%an3 Re-config MacroBBS}
{:SP1} {DISP 12,15,,%an4%Which? %an0(1-8, ENTER=quit) :%an7 ^H}
{SETG 120,m_init}
{GETS-H ch,1,m_init}
{COMP ch,1} {IFCO SP2}
{COMP ch,2} {IFCO SP3}
{COMP ch,3} {IFCO SP7}
{COMP ch,4} {IFCO SP8}
{COMP ch,5} {IFCO SP9}
{COMP ch,6} {IFCO SP14}
{COMP ch,7} {IFCO SP13}
{COMP ch,8} {IFCO ,SP1}
{:SP11} {DISP 14,15,0F,Are you sure you want to alter the CONFIGURATION? (y/%an3%N%an7) :%an0 ^H}
{SETG 120,WFC}
{GETS ch,1,SP0}
{COMP ch,n} {IFCO SP0}
{COMP ch,y} {IFCO ,SP11}
{DISP 16,15,0C,Ok...} {PAUS 1}
{MACL MACROCFG.MAC,start}
{:SP13} {STAT y} {SETV mcount,1}
{:SP21} {CALL CLS} {SETV count,0}
{SEND ^J^M%an1 # Handle^J^M^J}
{:SP15} {IFEX %userdir%%mcount.MHS,,SP18}
{ROPE %userdir%%mcount.MHS,SP18} {READ dline} {RCLO}
{SEND %an7 %mcount. %an3%%dline^J^M}
{INCR count}
{:SP18} {INCR mcount} {COMP mcount,%uhigh} {IFCO-G SP16}
{COMP count,18} {IFCO ,SP15}
{CALL screen_full}
{COMP ch,y} {IFCO SP21}
{:SP16} {CALL press_any_key}
{COMP on,} {IFCO SP0}
{RETURN}
{:SP2} {SETV userno,1}
{:SP6} {IFEX %msgsdir%E%userno-1.PVT,,SP0}
{SETV mcount,0}
{STAT y} {CALL BB36}
{GOTO SP0}
{:SP3} {DISP 13,15,07,Read whose mail?}
{CALL SP10}
{GOTO SP6}
{:SP7} {SETV userno,1}
{CALL send_email}
{GOTO SP0}
{:SP8} {DISP 13,15,07,Count whose mail?}
{CALL SP10}
{CALL mail_count}
{DISP 16,15,,%an7%%to %an3%has %an7%%ch %an3%letter(s) waiting.}
{CALL press_any_key}
{GOTO SP0}
{:SP9} {DISP 13,15,07,Edit whose letter?}
{CALL SP10}
{CALL mail_count}
{:SP12} {DISP 16,15,09,Which?%an0 (1 - %ch) : ^H^H}
{SETG 120,WFC}
{GETS to,2,SP0}
{COMP to,%ch} {IFCO-G SP12}
{IFEX %msgsdir%E%userno-%to.PVT,,SP12}
{EDIT %msgsdir%E%userno-%to.PVT}
{GOTO SP0}
{:SP14} {DISP 14,15,09,View which? %an0(1-7) : ^H^H}
{SETG 120,WFC}
{GETS-H ch,1,SP0}
{COMP ch,1} {IFCO-L SP14}
{COMP ch,7} {IFCO-G SP14}
{IFEX %datadir%LOG-%ch.LOG,,SP14}
{SETV dump_file,%datadir%LOG-%ch.LOG}
{CLEA} {STAT y}
{CALL dsp_file}
{CALL press_any_key}
{GOTO SP0}
{:SP10} {DISP 14,15,09,Enter a handle or ID#: }
{DISP 14,15,09,Enter a handle or ID#: } {SEND %an0}
{SETG 120,WFC}
{:SP4} {GETS to,30,SP19}
{DISP 15,15,,}
{CALL match_name_userno}
{COMP t,1} {IFCO ,SP10} {SETV t}
{SETV userno,%tono}
{RETURN}
{:SP19} {POPS}
{GOTO SP0}
{:wait_for_call}
{PUSH}
{SETE cancel}
{:WFC} {SETV s} {SETV count,0}
{:WF7} {SETV userno,1} {CALL mail_count}
{CALL read_data} {SETV login_name,%l_caller} {SETV userno,%luserno}
{COMP ldate,%_dat} {IFCO ,midnight}
{STAT n} {CLEA}
{:WF8} {DISP 1,2,0C,%bbs}
{DISP 25, 4,02,System Time: }
{DISP 25,57,02,Date: }
{CALL WF6}
{CALL WF5}
{DISP 2 ,36,0C,╔%an3 ▄ ▄ ▄▄▄ ▄▄▄ ▄▄▄ ▄▄▄▄%an0 (tm) %an1═══════════╗}
{DISP 3 ,36,0C,║%an3 ██▄██ █▄█ █ █▄█▄ █ █%an7 Version 1.2d %an1 ║}
{DISP 4 ,36,0C,║%an3 █ ▀ █ █ █ █▄▄ █ █ █▄▄█%an0 by Jeff Oberlee%an1 ║}
{DISP 5 ,36,0C,╚═════════%an7 B B S%an1 ═════════════════════════╝}
{DISP 18, 4,0C,Last Caller: %an0%%l_caller #%luserno}
{DISP 19, 4,0C,Last Date : %an0%%ldate}
{DISP 20, 4,0C,Logon Time : %an0%%stime}
{DISP 21, 4,0C,Logoff Time: %an0%%ftime}
{DISP 22, 4,0C,Calls Today: %an0%%tdcalls}
{DISP 23, 4,0C,Mins Active: %an0%%ttu}
{DISP 19,37,07, ____ }
{DISP 20,37,07,^|\/ o \ }
{DISP 21,37,07,^| ,__^| }
{DISP 22,37,07,^|/\____/ }
{DISP 19,60,09,Pub Posted : %an0%%pub}
{DISP 20,60,09,Pvt Mailed : %an0%%pvt}
{DISP 18,60,09,Sysop Mail : %an0%%ch}
{DISP 22,60,09,Total Calls: %an0%%callno}
{:WF0}
{SETE-P0 m_init}
{DISP 25,32,87,Waiting for a Call}
{DISP 25,17,07,%_tim} {DISP 25,63,07,%_dat (%_dwt)}
{DISP 15,3,02, Command: } {DISP 15,3,02, Command%an0: }
{SPOC y} {LOCA y} {CURS y}
{SETG 30,blink,l}
{:WF1} {GETS-L ch,10,WF1}
{COMP ch,%ring} {IFCO WF9}
{COMP ch,i} {IFCO m_init_w}
{SPOC n}
{SETE cancel}
{COMP ch,1} {IFCO WF2}
{COMP ch,c} {IFCO call_log}
{COMP ch,u} {IFCO use_log}
{COMP ch,s} {IFCO special}
{COMP ch,2} {IFCO view_scroll}
{COMP ch,3} {IFCO ed_opts}
{COMP ch,4} {IFCO edit_fareas}
{COMP ch,5} {IFCO edit_msgbs}
{COMP ch,6} {IFCO edit_caller}
{COMP ch,d} {IFCO dos_shell}
{COMP ch,q} {IFCO WF3,WF0}
{:WF9}
{DISP 15,3,, } {DISP 15,4,,}
{SETG 1,RNG2}
{:RNG1} {GETS ch,20,RNG1}
{GOTO RNG1}
{:RNG2} {DISP 25,32,8E,Waiting to CONNECT} {DISP 15,4,,}
{SEND ATA^J^M}
{DISP 15,4,0F,ATA%an9: } {DISP 15,9,,}
{SETL 45,m_init}
{GOLO 300,%connect^M}
{GOLO 1200,%connect 1200}
{GOLO 2400,%connect 2400}
{GOLO 4800,%connect 4800}
{GOLO 7200,%connect 7200}
{GOLO 9600,%connect 9600}
{GOLO 12000,%connect 12000}
{GOLO 14400,%connect 14400}
{GOLO 19200,%connect 19200}
{GOLO m_init_w,%ring}
{GOLO m_init,NO CARRIER}
{LOOK %connect 38400}
{SETV mspeed,38400}
{GOTO WF10}
{:300} {SETV mspeed,300} {GOTO WF10}
{:1200} {SETV mspeed,1200} {GOTO WF10}
{:2400} {SETV mspeed,2400} {GOTO WF10}
{:4800} {SETV mspeed,4800} {GOTO WF10}
{:7200} {SETV mspeed,7200} {GOTO WF10}
{:9600} {SETV mspeed,9600} {GOTO WF10}
{:12000} {SETV mspeed,12000} {GOTO WF10}
{:14400} {SETV mspeed,14400} {GOTO WF10}
{:19200} {SETV mspeed,19200}
{:WF10} {COMP lock,y} {IFCO WF11}
{PARM %mspeed}
{:WF11} {SETV on,1}
{POPS-C}
{GOTO BBS1}
{:blank_wait}
{SETE-P0 m_init}
{CLEA}
{SETG 60,BW2}
{:BW1} {GETS-H ch,1}
{GOTO WFC}
{:BW2} {COMP %_dat,%ldate} {IFCO ,midnight}
{GOTO BW1}
{:WF5}
{DISP 6 ,36,17,╔═════════════════════════════════════════╗
{DISP 7 ,36,17,║ Embryo ____ by Shad Muegge ║}
{DISP 8 ,36,17,║ ---------^|\/ o \------------------ ║}
{DISP 9 ,36,17,║ ____^| ,__^| Association of ║}
{DISP 10,36,17,║ / o \/^|____/ Babble Fish ║}
{DISP 11,36,17,║ ^|__, ^|____ Programmers ║}
{DISP 12,36,17,║ \____^|\/ o \ ║}
{DISP 13,36,17,║ ^| ,__^| MEMBER ║}
{DISP 14,36,17,║ ---------^|/\____/------------------ ║}
{DISP 15,36,17,║ ║}
{DISP 16,36,17,╚═════════════════════════════════════════╝}
{RETURN}
{:WF6}
{DISP 2,2,47,╔════════════════════════════════╗}
{DISP 3,2,47,║%an3%%an13 MacroBBS:%an0%%an13 OFF-LINE ║}
{DISP 4,2,47,╠════════════════════════════════╣}
{DISP 5,2,47,║%an7%%an13 OPTIONS LOGS%an0%%an13 ║}
{DISP 6,2,47,║ 1. Log-on (local) C - Calls ║}
{DISP 7,2,47,║ 2. See Scrollback U - Usage ║}
{DISP 8,2,47,║ 3. Text Edit Menu %an7%%an13 MISC%an0%%an13 ║}
{DISP 9,2,47,║ 4. FileXfer Areas D - DOS ║}
{DISP 10,2,47,║ 5. Message Areas I - Init ║}
{DISP 11,2,47,║ 6. Caller Records S - Sysop ║}
{DISP 12,2,47,║ Q - Quit ║}
{DISP 13,2,47,╚════════════════════════════════╝}
{:EO2}
{DISP 14,1,07, ╔════════════════════════════════╗}
{DISP 15,1,07, ║ ║}
{DISP 16,1,07, ╚════════════════════════════════╝}
{DISP 17,1,, }
{RETURN}
{:WF2}
{SETV mspeed,LOCAL}
{SETV on,2}
{SPOC n}
{POPS-C}
{GOTO BBS1}
{:cancel}
{COMP open,y} {IFCO ,XX} {RCLO}
{:XX} {GOTO BBS}
{:WF3} {CLEA}
{SPOC y} {LOCA n}
{SETV a} {SETV e} {SETV f} {SETV n} {SETV r} {SETV t} {SETV ta} {SETV em}
{SETV aa} {SETV ch} {SETV temp} {SETV cf} {SETV na} {SETV mx} {SETV mic}
{SETV new} {SETV df} {SETV em} {SETV tl} {SETV ta} {SETV on} {SETV fa}
{SETV al}
{SETV bal}
{SETV bname}
{SETV ccount}
{SETV chat}
{SETV cline}
{SETV co1}
{SETV co2}
{SETV count}
{SETV dfiles}
{SETV dline}
{SETV dump_file}
{SETV ecount}
{SETV expert}
{SETV files}
{SETV fline}
{SETV high}
{SETV himsgno}
{SETV lineno}
{SETV lname}
{SETV login_name}
{SETV lomsgno}
{SETV maxmsg}
{SETV mcount}
{SETV password}
{SETV proto}
{SETV protocol}
{SETV quotemsg}
{SETV reads}
{SETV subj}
{SETV to}
{SETV tono}
{SETV total}
{SETV trace}
{SETV userno}
{COMP s,5} {IFCO ,CU} {RETURN}
{:CU} {STAT y}
{CALL ascii}
{SETV mnu} {SETV s}
{SETV datadir} {SETV dszdir} {SETV filedir} {SETV msgsdir} {SETV userdir}
{SETV cb} {SETV asan} {SETV bw} {SETV lock}
{SETV bbs} {SETV sysop} {SETV syspass} {SETV initstr} {SETV dal} {SETV sal}
{SETV connect} {SETV ring} {SETV tlc} {SETV max} {SETV mspeed}
{SETV callno} {SETV uhigh} {SETV mhigh} {SETV fhigh}
{SETV ttu} {SETV pub} {SETV pvt} {SETV tf} {SETV l_caller} {SETV luserno}
{SETV stime} {SETV ftime} {SETV ldate} {SETV tdcalls}
{DISP 2,1,0E,Exiting to COMMO ...^J^M}
{LIGH n}
{INIT}
{MACL COMMO.MAC}
{:ed_opts}
{CALL get_syspass}
{CALL EO2}
{:EO}
{DISP 4,2,47,╚════════════════════════════════╝}
{DISP 5,2,07,╔═%an7 OPTIONS%an0 ══════════════════════╗}
{DISP 6,2,07,║ ║}
{DISP 7,2,07,║%an7 1.%an0 Edit log-on NOTICES ║}
{DISP 8,2,07,║%an7 2.%an0 Edit a file list ║}
{DISP 9,2,07,║%an7 3.%an0 Edit any ASCII file ║}
{DISP 10,2,07,║ ║}
{DISP 11,2,07,║ ║}
{DISP 12,2,07,║ ║}
{DISP 13,2,07,╚════════════════════════════════╝}
{:EO1} {DISP 11,4,0F,Which? %an0[ENTER = quit] :%an7 ^H^H}
{SETG 120,time_out}
{GETS-H ch,1,EO3}
{COMP ch,1} {IFCO note_ed}
{COMP ch,2} {IFCO list_edit}
{COMP ch,3} {IFCO edit_a_file}
{GOTO EO1}
{:EO3} {CALL WF6}
{GOTO m_init_w}
{:note_ed}
{EDIT %datadir%NOTICES.DAT}
{GOTO EO}
{:edit_a_file}
{SETV ch,%_home}
{DISP 13,36,17,╚═════════════════════════════════════════╝}
{DISP 14, 2,0F,╔════════════%an3 Type full path of file to edit, then press ENTER%an7 ═════════════╗}
{DISP 15, 2,0F,║ ║}
{DISP 16, 2,0F,╚═══════════════════════════════════════════════════════════════════════════╝}
{:EAF2} {DISP 15,4,09,Path: }
{DISP 15, 4,0E,Path: %an0%%ch}
{SETG 120,WFC}
{GETS-A ch,67,EAF1}
{EDIT %ch}
{SETV ch,%_hom}
{GOTO EAF2}
{:EAF1}
{CALL WF5}
{CALL EO2}
{GOTO EO}
{:list_edit}
{DISP 15,3,0E, Which? %an0(1 - %fhigh) : ^H^H^H}
{SETG 60,WFC}
{GETS ch,3,LE}
{COMP ch,1} {IFCO-L list_edit}
{COMP ch,%fhigh} {IFCO-G list_edit}
{EDIT %filedir%F%ch.LST}
{:LE} {CALL EO2}
{GOTO EO}
{:blink}
{INCR count}
{COMP %_dat,%ldate} {IFCO ,midnight}
{CURS n}
{DISP 20,37,07,\}
{DISP 21,37,07,\}
{DISP 22,37,07,\}
{PAUS 1}
{DISP 20,37,07,^|}
{DISP 21,37,07,^|}
{DISP 22,37,07,^|}
{DISP 15,13,07,}
{COMP bw,y} {IFCO blank_wait}
{CURS y}
{COMP count,15} {IFCO-GE m_init_w,WF0}
{:midnight}
{CLEA} {SEND ATM0H1^J^M}
{MACL MACRONYT.MAC,start}
{:mail_count}
{SETV ch,0}
{:MC1} {INCR ch}
{IFEX %msgsdir%E%userno-%ch.PVT,MC1}
{DECR ch}
{RETURN}
{:send_email}
{CALL cls}
{SETV f,1}
{SEND ^J^M%an0% (Enter a Handle or ID#)^J^M}
{SEND %an7%To: %an7%%an12 ^M}
{SEND %an7%To: %an7%%an12}
{SETG 120,time_out}
{GETS to,30,BB16}
{SEND ^J^M}
{CALL match_name_userno}
{COMP t,1} {IFCO ,send_email} {SETV t}
{SEND %an3%Send email to %an7%%to (#%tono)%an3? %an0(%an7%Y%an0,n) : %an7}
{:SE1} {GETS-H ch,1,SE4}
{COMP ch,y} {IFCO SE4}
{COMP ch,n} {IFCO send_email}
{SEND ^H} {GOTO SE1}
{:match_name_userno}
{IFEX %datadir%CALLERS.LST,,MNU2}
{ROPE %datadir%CALLERS.LST,MNU2}
{:MNU1} {READ ch} {READ lname} {READ dline}
{COMP to,%ch} {IFCO MNU5}
{COMP to,%lname} {IFCO ,MNU1}
{:MNU5} {SETV to,%lname}
{SETV tono,%ch}
{RCLO}
{SETV t,1}
{GOTO MNU4}
{:MNU2} {SEND %an1%ID not found.} {PAUS 1}
{:MNU4} {RETURN}
{:BBS}
{CLEA}
{POPS-C}
{SETV on} {SETV open} {SETV s,5}
{CALL WF3}
{CALL setup}
{COMP asan,y} {IFCO asn1}
{CALL ascii}
{GOTO asn2}
{:asn1} {CALL ansi}
{:asn2} {LENG %bbs} {SETV ch,69} {DECR ch,%_len}
{SUBS dline,1,%ch,░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
{SETV bbs,%an3░░░░░░%an0 %bbs%%an3 %dline} {SETV dline}
{GOTO wait_for_call}
{:BBS1}
{SETV login_name} {SETV userno}
{SETV expert,OFF} {SETV a,1} {SETV fa,1}
{SETV ring} {SETV connect} {SETV initstr} {SETV bw} {SETV asan}
{CLEA} {STAT y} {ELAP}
{SETE-P0 esc_menu}
{WOPE-A %datadir%LOG-1.LOG} {WRIT █████ Connect: %mspeed on %_dat %_tim █████} {WRIT } {WCLO}
{DISP 1,1,0F,Connection speed: %an3%%mspeed}
{SEND ^J^M^J}
{ROPE %_hom%MACROBBS.CFG,} {READ bbs} {RCLO}
{SEND MacroBBS (tm) v1.2d - (C)opyright 1992 by Jeff Oberlee - All Rights Reserved^J^M^J}
{SEND ----------------------------------------------------------------------------^J^M^J}
{SEND Welcome to %bbs^J^M^J} {SETV bbs}
{PUSH}
{SEND Does your computer do ANSI color?^J^M}
{SEND If you see a line of O's next to the arrow, press Y for YES.^J^M}
{SEND But if you see a lot of other junk, press N for NO.^J^M^J}
{SEND --> ^[[0;1;31mOOOO^[[0;1;33mOOOO^[[0;1;37mOOOO^[[0;2;32mOOOO^[[0;1;34mOOOO^[[0m^J^M^J}
{SETG 90,gbye}
{:BB22} {SEND ^MDoes your computer do ANSI color? (y,n) : }
{CALL cd}
{GETS-H ch,1,BB22}
{COMP ch,y} {IFCO BB23}
{COMP ch,n} {IFCO BB24}
{SEND ^H} {GOTO BB22}
{:BB23} {SEND ^[[2J}
{CALL ansi}
{GOTO BB25}
{:BB24} {SEND ^L}
{CALL ascii}
{:BB25} {POPS}
{SETV dump_file,%datadir%LOGON%mnu.mnu}
{IFEX %dump_file,,BB34}
{CALL ascii_ul}
{:BB34} {CALL read_data}
{ELAP}
{GOTO login_user}
{:BB} {SETV new} {SETV lock}
{COMP success,TRUE} {SETV success} {IFCO ,gbye}
{:BB1} {SETV stime,%_tim} {SETV reads,0} {SETV ftime,%_tim}
{COMP on,2} {IFCO BB15}
{INCR callno} {INCR tdcalls}
{CALL write_data}
{:BB15} {PUSH}
{CALL cls}
{SEND ^J^M^J%an3 Greetings %an7%%login_name%%an3%! Glad you could drop by!^J^M}
{SEND ^J^M%an1 You are caller #%an0%%callno^J^M}
{SEND ^J^M%an5 The last person online was none other than %an7%%l_caller %an0%#%luserno^J^M}
{SETV ch,%tlc} {DECR ch,%_ela}
{SEND ^J^M%an7 Allotted time for this call: %an4%%ch%%an7 minute(s)^J^M^J}
{IFEX %datadir%INTROMSG.MSG,,BB2}
{SETV open,y}
{ROPE %datadir%INTROMSG.MSG,BB2} {READ ch}
{SEND ^J^M%an1 INTROMSG %an0%by %an7%%ch^J^M^J}
{:BB26} {READ dline} {SEND %dline^J^M} {GOTO BB26}
{:BB2} {POPS}
{SETV dline} {SETV open}
{CALL press_any_key}
{:BB17}
{IFEX %datadir%PERSONAL.DAT,,BB21}
{IFEX %userdir%%userno.DAT,BB21}
{MACL MACRODAT.MAC,start}
{:BB21} {SETV dump_file,%datadir%NOTICES.DAT}
{IFEX %dump_file,,BB35}
{CALL cls} {SEND ^J^M%an7 NOTICES^J^M%an5}
{CALL dsp_file}
{CALL press_any_key}
{:BB35} {CALL cls}
{IFEX %_hom%QUOTED.EXE,,BB10}
{SETV dump_file,%datadir%TEMP.000}
{SEND ^J^M%an7...and I quote:^J^M^J%an3}
{EXEC-N %_hom%QUOTED.EXE > %dump_file}
{CALL dsp_file}
{SEND ^J^M%an1────────────────────────────────────-}
{:BB10} {IFEX %msgsdir%E%userno-1.PVT,,BB18}
{SETV mcount,0}
{SEND ^J^M^J%an7 Read your private mail? %an0(%an7%Y%an0,n) : %an3}
{SETG 120,time_out}
{:BB33} {GETS-H ch,1,BB36}
{COMP ch,n} {IFCO BB3}
{COMP ch,y} {IFCO BB36}
{SEND ^H} {GOTO BB33}
{:BB36}
{CALL cls}
{CALL mail_count}
{SETV total,%ch}
{:BB4} {INCR mcount}
{:BB14} {SETV dump_file,%msgsdir%E%userno-%mcount.PVT}
{IFEX %dump_file,,BB5}
{CALL cls}
{SEND %an7%Letter #%mcount of %total^J^M^J}
{SETV e,1} {CALL dsp_file} {SETV e}
{SETE time_out}
{:BB6} {SEND ^J^M%an5%E-mail Menu%an0%: %an7%R%an0%eply, %an7%P%an0%rev, %an7%A%an0%gain, %an7%N%an0%ext or %an7%Q%an0%uit? }
{SETG 300,time_out}
{:BB8} {GETS-H ch,1,BB4}
{COMP ch,a} {IFCO BB14}
{COMP ch,n} {IFCO BB4}
{COMP ch,q} {IFCO BB5}
{COMP ch,r} {IFCO BB7}
{COMP ch,p} {IFCO FW1}
{SEND ^H} {GOTO BB8}
{:FW1} {COMP mcount,1} {IFCO ,FW2}
{SEND ^J^M^J%an7<Beginning of %an5%E-mail%an7>^J^M} {GOTO BB6}
{:FW2} {DECR mcount,2}
{GOTO BB4}
{:BB7} {SETV r,1}
{SETV quotemsg,%msgsdir%E%userno-%mcount.PVT}
{ROPE %quotemsg,BB6} {READ tono} {READ to} {READ to} {RCLO}
{CALL cls}
{:SE4} {SETV ecount,0}
{:BB9} {INCR ecount}
{IFEX %msgsdir%E%tono-%ecount.PVT,BB9}
{SETV dump_file,%msgsdir%E%tono-%ecount.PVT}
{SETE time_out}
{WOPE-A %dump_file}
{SETV open,yy}
{WRIT %userno}
{WRIT %to}
{WRIT %login_name}
{WRIT STUFF}
{WRIT %_dat %_tim}
{WRIT }
{SETV lineno,0}
{SEND ^J^M^J%an7%Maximum of %max lines.^J^M}
{SEND %an4-------------%an0 /s - save %an4-------%an0 /e - editor %an4-------%an0 /abt - abort %an4--------------^J^M}
{COMP r,1} {IFCO ,BB27}
{SEND %an4-------------------------------%an0 /q - quoter %an4-----------------------------------^J^M}
{:BB27} {SETV dline}
{:BB28} {SEND ^J^M%an3%%dline}
{SETG 240,BB13}
{GETS-AH dline,78,BB12}
{COMP dline,/e} {IFCO edit_system}
{COMP dline,/q} {IFCO quote}
{COMP dline,/s} {IFCO BB11}
{COMP dline,/abt} {IFCO BB13}
{SETV dline, %dline}
{LENG %dline} {COMP %_len,78} {IFCO-LE BB31}
{SETV ccount,80} {SETV temp,0}
{:BB29} {DECR ccount} {INCR temp}
{COMP ccount,60} {IFCO-LE BB31}
{SUBS ch,%ccount,1,%dline}
{COMP ch, } {IFCO ,BB29}
{COMP ccount,79} {IFCO BB31}
{SETV ch,0}
{:BB30} {INCR ch} {SEND ^H}
{COMP ch,%temp} {IFCO ,BB30}
{SETV ch,78} {DECR ch,%temp}
{SUBS cline,2,%ch,%dline}
{WRIT %cline} {SETV cline}
{INCR ccount}
{SUBS dline,%ccount,%temp,%dline}
{INCR lineno} {COMP lineno,%max} {IFCO-LE BB28,BB32}
{:BB31} {SUBS dline,2,100,%dline}
{:BB12} {WRIT %dline}
{INCR lineno} {COMP lineno,%max} {IFCO-LE BB27}
{:BB32} {SEND ^J^M%an7%You have reached the line limit.^J^M} {GOTO edit_system}
{:BB11} {WCLO}
{SEND ^J^M%an3%Your letter has been mailed.}
{COMP on,} {IFCO BB16}
{CALL read_data}
{INCR pvt}
{CALL write_data}
{WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Sent private email to %to #%tono} {WCLO}
{GOTO BB16}
{:BB13} {WCLO}
{EXEC-N DEL %dump_file}
{SEND ^J^M%an1%Message aborted and deleted.^J^M} {PAUS 1}
{:BB16} {SETV r} {SETV open} {COMP f,1} {IFCO ,BB6}
{SETV f} {SEND %an0}
{:BB19} {SETV mcount} {SETV ecount}
{RETURN}
{:BB5} {COMP on,} {IFCO BB19}
{CALL cls}
{SEND ^J^M^J%an7 That's all for now...}
{SETV lineno} {SETV lname} {SETV dline}
{GOTO BB20}
{:BB18} {SEND ^J^M^J%an0 Sorry. Your E-mailbox is empty.^J^M^J}
{:BB20} {CALL press_any_key}
{COMP on,} {IFCO BB19}
{:BB3} {SETV mcount} {SETV ecount}
{GOTO main_menu}
{:ansi}
{SETV mnu,n}
{SETV an0,^[[0;2;37m}
{SETV an1,^[[0;1;31m}
{SETV an2,^[[0;2;32m}
{SETV an3,^[[0;1;33m}
{SETV an4,^[[0;1;34m}
{SETV an5,^[[0;1;35m}
{SETV an6,^[[0;1;36m}
{SETV an7,^[[0;1;37m}
{SETV an9,^[[5m} {SETV an12,^[[44m} {SETV an13,^[[41m}
{RETURN}
{:ascii}
{SETV mnu,A}
{SETV an0} {SETV an1} {SETV an2} {SETV an3} {SETV an4} {SETV an5}
{SETV an6} {SETV an7} {SETV an9} {SETV an12} {SETV an13}
{RETURN}
{:gby2}
{SEND ^J^M^J%an1%%an9%Your time on-line for this call has expired.} {PAUS 4}
{IFCA ,GB2}
{:gby}
{SEND ^J^M^J}
{SETV dump_file,%datadir%LOGOFF%mnu.mnu}
{IFEX %dump_file,,GB2}
{CALL ascii_ul}
{:GB2} {SETV ftime,%_tim}
{INCR ttu,%_ela}
{HANG y}
{IFEX %msgsdir%E%userno-*.PVT,,GB1}
{COMP mspeed,local} {IFCO ,GB3}
{:GB4} {SEND ^M%an3%Delete your e-mail? %an0(y,%an7%N%an0) : ^H}
{SETG 60,GB1}
{GETS-H ch,1,GB1}
{COMP ch,n} {IFCO GB1}
{COMP ch,y} {IFCO ,GB4}
{:GB3} {SEND ^J^M%an0%Deleting e-mail...}
{EXEC-N DEL %msgsdir%E%userno-*.PVT}
{:GB1} {SEND ^J^M%an1%Saving...}
{CALL write_user}
{CALL write_data}
{WOPE-A %datadir%LOG-1.LOG} {WRIT Read: %reads}
{WRIT ░░░░░ Logoff: %_dat %_tim ░░░░░} {WRIT } {WCLO}
{COMP on,2} {IFCO hng}
{SEND ^J^M%an3%Updating Caller log...}
{WOPE-A %datadir%CALLERS.TDY}
{WRIT %_dat %stime TO %ftime %login_name #%userno} {WCLO}
{:hng} {GOTO bbs}
{:gbye} {HANG y}
{WOPE-A %datadir%LOG-1.LOG}
{WRIT ▒░▒░▒ DISCONNECTED: %_dat %_tim ▒░▒░▒} {WRIT } {WCLO}
{GOTO bbs}